import WebIM from 'easemob-websdk';
const appKey = '1180231201162493#demo';

let username, password;

// 初始化客户端。相关的参数配置，详见 API 参考中的 `Connection` 类。
WebIM.conn = new WebIM.connection({
  //注意这里的 "K" 需大写。
  appKey: appKey,
});

// 添加回调函数。
WebIM.conn.addEventHandler('connection&message', {
  onConnected: () => {
    document.getElementById('log').appendChild(document.createElement('div')).append('Connect success !');
  },
  onDisconnected: () => {
    document.getElementById('log').appendChild(document.createElement('div')).append('Logout success !');
  },
  onTextMessage: (message) => {
    console.log(message);
    document
      .getElementById('log')
      .appendChild(document.createElement('div'))
      .append('Message from: ' + message.from + ' Message: ' + message.msg);
  },
  onError: (error) => {
    console.log('on error', error);
  },
});

// 按钮行为定义。
window.onload = function () {
  // 注册。
  document.getElementById('register').onclick = function () {
    username = document.getElementById('userID').value.toString();
    password = document.getElementById('password').value.toString();
    WebIM.conn
      .registerUser({ username, password })
      .then((res) => {
        document.getElementById('log').appendChild(document.createElement('div')).append(`register user ${username} success`);
      })
      .catch((e) => {
        document.getElementById('log').appendChild(document.createElement('div')).append(`${username} already exists`);
      });
  };
  // 登录。
  document.getElementById('login').onclick = function () {
    username = document.getElementById('userID').value.toString();
    password = document.getElementById('password').value.toString();
    WebIM.conn
      .open({ user: username, pwd: password })
      .then((res) => {
        document.getElementById('log').appendChild(document.createElement('div')).append(`Login Success`);
      })
      .catch((e) => {
        document.getElementById('log').appendChild(document.createElement('div')).append(`Login failed`);
      });
  };

  // 登出。
  document.getElementById('logout').onclick = function () {
    WebIM.conn.close();
  };

  // 发送一条单聊消息。
  document.getElementById('send_peer_message').onclick = function () {
    let peerId = document.getElementById('peerId').value.toString();
    let peerMessage = document.getElementById('peerMessage').value.toString();
    let option = {
      chatType: 'singleChat', // 会话类型，设置为单聊。
      type: 'txt', // 消息类型。
      to: peerId, // 消息接收方（用户 ID)。
      msg: peerMessage, // 消息内容。
    };
    let msg = WebIM.message.create(option);
    WebIM.conn
      .send(msg)
      .then((res) => {
        console.log('send private text success');
        document
          .getElementById('log')
          .appendChild(document.createElement('div'))
          .append('Message send to: ' + peerId + ' Message: ' + peerMessage);
      })
      .catch(() => {
        console.log('send private text fail');
      });
  };
};
